██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
NURBS
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwawNURBS è un mwbaacronimo che sta per mwbqNon Uniform Rational Basis-Splines, traducibile in "Splines razionali non uniformi definite da una base", una classe di mwbgcurve geometriche utilizzate in mwbwcomputer grafica per rappresentare curve e superfici.
Una NURBS è la rappresentazione matematica che i software, ad esempio i sistemi mwcqCAD, usano per creare gli oggetti geometrici, per definirne accuratamente la forma.
Le curve NURBS sono una generalizzazione delle curve B-Spline e delle mwdacurve di Bézier.
Contents
• Storia
• Grado
• Nodi
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Storia
Prima che fossero inventati i mwfgcomputer, i progetti venivano disegnati a mano su carta con vari strumenti da disegno. I righelli erano usati per le rette, i compassi per le circonferenze, e i goniometri per gli angoli. Ma molte forme, come la curva libera di un arco di nave, non potevano essere disegnate con questi strumenti. Sebbene queste curve potessero essere disegnate a mano libera sul foglio da disegno, i costruttori navali spesso necessitavano di una versione a grandezza naturale che non poteva essere fatta a mano. Tali grandi disegni erano eseguiti con l'aiuto di strisce a spessore variabile di legno (di limone) o altro materiale elastico, chiamate flessibili (in inglese mwfwspline). I flessibili (spline) erano tenuti in posizione in un certo numero di punti dai pesi (in inglese "ducks"); fra i pesi (ducks), il flessibile assumeva una forma "avviata" (cioè senza discontinuità né punti angolosi né variazioni brusche di curvatura); scegliendo il tipo di flessibile con la distribuzione di spessore più opportuna si potevano ottenere le curve migliori di caso in caso.cite-ref-1[1]
Nel 1964, i matematici cominciarono a studiare la forma della spline e derivarono la formula polinomiale conosciuta come curva spline o funzione spline. I. J. Schoenberg diede il nome di mwhqfunzione spline data la sua somiglianza alla spline meccanica utilizzata dai disegnatori.cite-ref-2[2]
Quando i computer vennero introdotti al processo di progettazione, le proprietà fisiche di tali spline furono studiate in modo che potessero essere modellate con precisione matematica e riprodotte quando necessario. Il lavoro pionieristico fu fatto in Francia dall'ingegnere mwiwPierre Bézier della mwjaRenault, e dal fisico e matematico mwjqPaul de Casteljau della mwjgCitroën. Entrambi lavorarono quasi parallelamente, ma poiché Bézier pubblicò i risultati del proprio lavoro, le curve furono dette "di Bézier" mentre il nome di Casteljau è solo legato ai relativi mwjwalgoritmi.
All'inizio le NURBS erano utilizzate solo nei pacchetti CAD proprietari delle compagnie automobilistiche. Più tardi sarebbero diventati parte standard dei pacchetti di mwkqcomputer grafica.
Il mwkwrendering interattivo e in tempo reale delle curve e delle superfici NURBS fu reso disponibile per fini commerciali per la prima volta sulle mwlaworkstation della mwlqSilicon Graphics nel 1989. Nel 1993, il primo modellatore interattivo per le NURBS su PC, chiamato "NöRBS", venne sviluppato da CAS Berlin, una piccola mwlgstartup che collaborava con mwlwUniversità Tecnica di Berlino. Oggi la maggior parte delle applicazioni grafiche professionali per computer, offrono la tecnologia NURBS, che è spesso realizzata per mezzo dell'integrazione di un motore NURBS proveniente da una azienda specializzata.
Aspetti teorici
Le geometrie NURBS hanno cinque importanti caratteristiche che le rendono una scelta ideale per la modellazione assistita da computer.cite-ref-3[3]
• Esistono svariate soluzioni basate su standard industriali in grado di scambiare geometrie NURBS. Ciò consente ad un gran numero di utenti di poter intercambiare i loro modelli geometrici tra i vari programmi di modellazione, rendering, animazione ed analisi ingegneristica. Le informazioni memorizzate sulle geometrie possono essere riutilizzate in futuro.
• Le NURBS hanno una definizione precisa e ben nota. I principi matematici ed informatici delle geometrie NURBS vengono insegnati nelle maggiori università. Ciò significa che i produttori di software specialistici, i team ingegneristici, gli studi di mwoqdesign industriale e le case di animazione che hanno bisogno di realizzare delle applicazioni personalizzate possono trovare facilmente dei programmatori preparati in grado di lavorare con le geometrie NURBS.
• Le NURBS possono rappresentare accuratamente sia oggetti geometrici standard (come rette, circonferenze, ellissi, sfere o toroidi), che geometrie mwowfree-form, quali carrozzerie per automobili o corpi umani.
• La quantità di informazioni richiesta per la rappresentazione NURBS di un elemento geometrico è di gran lunga inferiore alla quantità di informazioni necessaria per rappresentare la stessa geometria tramite approssimazioni mesh.
• La regola di stima di una NURBS, discussa di seguito, può essere implementata su un computer in modo efficiente ed accurato.
Curve e superfici NURBS si comportano in modo analogo, per cui la terminologia tecnica ad esse relative è pressoché la stessa. Una curva NURBS è definita da quattro caratteristiche: il mwpwgrado, i mwqavertici di controllo, i mwqqnodi e la mwqgregola di stima.
Ci sono due tipologie di curve NURBS: le curve EP passano per i punti immessi dall'utente. Questi prendono il nome di punti finali (EP - mwraEnd Points), mentre le curve CV invece si avvicinano solamente ai punti immessi. I punti immessi prendono il nome di vertici di controllo (CV - mwrqControl Vertices), chiamati in alcuni programmi mwrgpunti di controllo.cite-ref-0-4-0[4]
Grado
Il grado è un mwtqnumero intero positivo. Di solito vale 1, 2, 3, 4 o 5, anche se può essere qualunque numero intero.
Di solito, le rette e le polilinee NURBS hanno grado 1, le circonferenze NURBS hanno grado 2 e la maggior parte delle curve free-form ha grado 3 o 5. Invece di indicare il grado della curva con il rispettivo numero, si possono usare i termini lineare, quadratico, cubico e quintico. Lineare significa di grado 1, quadratico significa di grado 2, cubico significa di grado 3 e quintico significa di grado 5. Le curve cubiche sono quelle più utilizzate. Curve del quinto e del sesto ordine sono a volte utili, ma curve di ordini maggiori non vengono praticamente mai usate perché portano a problemi numerici interni e tendono a richiedere tempi di calcolo sproporzionati. Il grado 1 crea delle poligonali spezzate; maggiore è il grado, maggiore è la loro malleabilità (capacità di effettuare curve molto strette).cite-ref-0-4-1[4]
A volte, si può far riferimento all'mwvaordine di una curva NURBS. L'ordine di una curva NURBS è un numero intero positivo uguale a mwvq grado + 1 {\displaystyle {\text{grado}}+1} . Di conseguenza, il grado corrisponde a mwvg ordine − − 1 {\displaystyle {\text{ordine}}-1} . L'ordine di una curva NURBS definisce il numero di vertici di controllo vicini che influenzano ogni punto della curva.
È possibile aumentare il grado di una curva NURBS senza cambiarne la forma. In genere, non è invece possibile ridurre il grado di una curva NURBS senza modificarne la forma.
Vertici di controllo
I vertici di controllo sono una fila di punti in numero almeno uguale a mwxw grado + 1 {\displaystyle {\text{grado}}+1} .
Uno dei modi più semplici per modificare la forma di una curva NURBS consiste nel variare la posizione dei suoi vertici di controllo.
Ad ogni vertice di controllo è associato un peso (ossia la sua capacità di attrarre la curva). Tranne che per alcune eccezioni, i pesi sono numeri positivi. Quando i vertici di controllo di una curva hanno tutti lo stesso peso (di solito 1), la curva viene denominata "non razionale". In caso contrario, è detta razionale. La lettera R dell'acronimo NURBS sta per "razionale" e indica che una curva NURBS può essere razionale. Nella pratica, la maggior parte delle curve NURBS sono non razionali. Alcune curve NURBS (circonferenze ed ellissi ne sono un chiaro esempio) sono sempre razionali.
Nodi
I nodi (mwzaknots) sono una fila di mwzq grado + N − − 1 {\displaystyle {\text{grado}}+N-1} numeri, ove mwzg N {\displaystyle N} rappresenta il numero di vertici di controllo. Questa sequenza di numeri che precisa la definizione parametrica della curva è detta anche "vettore dei nodi". In questo contesto, il termine vettore non sta a significare una direzione 3D.
La sequenza di numeri dei nodi deve soddisfare diverse condizioni tecniche. Di norma, per assicurarsi che queste condizioni tecniche siano soddisfatte, si richiede che i numeri siano gli stessi o maggiori man mano che si procede verso la fine della lista e si limita il numero di valori ripetuti ad un numero non maggiore del grado. Per esempio, per una curva NURBS di grado 3 con 11 vertici di controllo, la sequenza 0,0,0,1,2,2,2,3,7,7,9,9,9 è una sequenza di nodi soddisfacente. La sequenza 0,0,0,1,2,2,2,2,7,7,9,9,9 non è invece accettabile perché sono presenti quattro numeri "2" e "4" è maggiore del grado della curva in esame (3).
Il numero di volte in cui il valore di un nodo si ripete è detto "molteplicità del nodo". Nella sequenza di nodi soddisfacente riportata in precedenza (0,0,0,1,2,2,2,3,7,7,9,9,9), il valore del nodo 0 ha molteplicità 3, il valore del nodo 1 ha molteplicità 1, il valore del nodo 2 ha molteplicità 3, il valore del nodo 7 ha molteplicità 2 ed il valore del nodo 9 ha molteplicità 3. Si dice che un nodo ha molteplicità piena se il suo valore si ripete tante volte quante il grado. Nell'esempio, i valori dei nodi 0, 2 e 9 hanno molteplicità piena. Il valore di un nodo che figura una volta sola è detto nodo semplice. Nell'esempio, i valori dei nodi 1 e 3 sono nodi semplici.
Se una sequenza di nodi inizia con un nodo a molteplicità piena, segue con dei nodi semplici, termina con un nodo a molteplicità piena e tutti i valori sono ugualmente spaziati, i suoi nodi sono detti uniformi. Per esempio, se una curva NURBS di grado 3 con 7 punti di controllo ha una sequenza 0,0,0,1,2,3,4,4,4, i suoi nodi saranno uniformi. I nodi della sequenza 0,0,0,1,2,5,6,6,6, per esempio, non saranno invece uniformi. I nodi senza uniformità si dicono appunto non uniformi. Le lettere N ed U dell'acronimo NURBS stanno per "non uniformi" ed indicano che i nodi di una curva NURBS possono essere non uniformi.
Valori di nodo ripetuti all'interno di una sequenza di nodi rendono la curva NURBS meno smussata. Un nodo a molteplicità piena nel mezzo di una sequenza di nodi indica che c'è una zona nella curva NURBS che può essere associata ad una discontinuità. Per questa ragione, alcuni designer preferiscono aggiungere e rimuovere i nodi e quindi regolare i vertici di controllo per ottenere delle curve dalle forme più smussate o più spigolose. Poiché il numero dei nodi è pari a mwaw grado + N − − 1 {\displaystyle {\text{grado}}+N-1} , in cui mwba N {\displaystyle N} è il numero di punti di controllo, l'aggiunta di nodi comporta l'aggiunta di punti di controllo, così come la loro rimozione implica la rimozione di punti di controllo. È possibile inserire dei nodi in una curva NURBS senza cambiarne la forma. La rimozione di nodi, in genere, cambia invece la forma di una curva.
Nodi e punti di controllo
Un comune malinteso è dato dal fatto di accoppiare ciascun nodo con un vertice di controllo. Ciò è vero solo per le NURBS di grado 1 (polilinee). Per NURBS di grado maggiore, sono presenti gruppi di mwbw 2 × × grado {\displaystyle 2\times {\text{grado}}} nodi che corrispondono a gruppi di mwca grado + 1 {\displaystyle {\text{grado}}+1} vertici di controllo. Per esempio, si supponga di avere una NURBS di grado 3 con 7 punti di controllo e nodi 0,0,0,1,2,5,8,8,8. I primi quattro vertici di controllo sono raggruppati con i primi sei nodi. I vertici di controllo dal secondo al quinto sono raggruppati con i nodi 0,0,1,2,5,8. I vertici di controllo dal terzo al sesto sono raggruppati con i nodi 0,1,2,5,8,8. Gli ultimi quattro vertici di controllo sono raggruppati con gli ultimi sei nodi.
Alcuni modellatori usano obsoleti algoritmi per la stima di una NURBS e richiedono due ulteriori valori di nodo per un totale di mwcg grado + N + 1 {\displaystyle {\text{grado}}+N+1} nodi. Il numero di punti finali mwcw n E P {\displaystyle nEP} , di vertici di controllo mwda n C V {\displaystyle nCV} e il grado della curva sono legati dalle formule (equivalenti):
mwdw n C V = n E P + grado − − 1 ; {\displaystyle nCV=nEP+{\text{grado}}-1;}
mweq n E P = n C V − − grado + 1. {\displaystyle nEP=nCV-{\text{grado}}+1.}
Regola di stima
La regola di stima di una curva è una formula matematica che assegna un numero a un punto.
La regola di stima NURBS è una formula che riguarda il grado, i punti di controllo e i nodi. Essa calcola le cosiddette funzioni base B-spline. Le lettere BS nell'acronimo NURBS stanno per “basis spline”. Il numero con il quale si avvia la regola di stima è detto "parametro". Possiamo pensare alla regola di stima come ad una "scatola nera" che riceve un parametro e genera la posizione di un punto. Il grado, i nodi e i vertici di controllo determinano il modo in cui lavora questa "scatola nera".
Superfici NURBS
Oltre che per descrivere le curve, le NURBS possono essere estese anche al caso bidimensionale per descrivere le superfici. In questo caso si parla di mwhavertici di controllo, mwhqsurface patch, mwhggrado e parametri mwhwu e mwiav. Dal momento che si tratta di superfici bidimensionali, le coordinate dei punti che vi appartengono vengono determinate da due parametri, chiamati mwiq u {\displaystyle u} e mwig v {\displaystyle v} . I pezzi di superficie (mwiwsurface patch) sono in un certo senso l'equivalente degli EP per una superficie NURBS. Il numero di mwjasurface patch (mwjq n S P {\displaystyle nSP} ) è legato al numero di CV in modo analogo agli EP:cite-ref-0-4-2[4]
mwla n S P u × × n S P v = ( n C V u − − grado ) × × ( n C V v − − grado ) . {\displaystyle nSPu\times nSPv=(nCVu-{\text{grado}})\times (nCVv-{\text{grado}}).}
Tutte le superfici NURBS derivano da una deformazione spaziale di una griglia di superfici quadrate (le mwlgsurface patch) affiancate.
Nel cinema di animazione
Le superfici NURBS sono state alla base della serie televisiva mwmqRolie Polie Olie del 1999. I personaggi della serie sono un buon esempio delle possibilità espressive di questa famiglia di superficicite-ref-1-5-0[5].
Note
cite-note-11. ↑ mwpamwpqmwpgNURB Curves: A Guide for the Uninitiated, su mwpwmactech.com.
cite-note-22. ↑ mwqwI. J. Schoenberg, mwramwrqSpline functions and the problem of graduation (mwrgmwrwPDF).
cite-note-33. ↑ mwswmwtamwtqChe cosa sono le NURBS?, su mwtgrhino3d.com.
cite-note-0-44. ↑ mwvgmwvwmwwaNURBS: curve e superfici (mwwqmwwgPDF), su mwwwdi.unito.it.
cite-note-1-55. ↑ mwxwmwyamwyqRolie Polie Olie 1999 by BANBAN animation, su mwygvimeo.com. mwywURL consultato il 2 aprile 2022 mwza(archiviato dall'mwzqurl originale il 20 dicembre 2011).
Bibliografia
• Les A. Piegl e Wayne Tiller, mw0qThe NURBS book, Springer-Verlag, mw0gNew York 1996, ISBN 3-540-61545-8
Voci correlate
Altri progetti
Altri progetti
• Wikimedia Commons
• Wikimedia Commons contiene immagini o altri file sulle NURBS
Collegamenti esterni
• citerefmathworld(EN) Eric W. Weisstein, NURBS Curve, su MathWorld, Wolfram Research.
• citereffoldoc(EN) Denis Howe, Non-Uniform Rational B Spline, in Free On-line Dictionary of Computing. Disponibile con licenza mw5aGFDL